home *** CD-ROM | disk | FTP | other *** search
- { Return Extended keys for 101 Keyboard including F11/F12.
- If key is extended, the BOOLEAN = TRUE. This is needed as Home key will
- return the same character value as 'G' }
-
- USES DOS;
-
- VAR Ch : Char;
- Ext : BOOLEAN;
-
- function ExReadKey(VAR Extended : BOOLEAN) : char;
- var Regs : registers;
- begin
- Regs.AX := $1000;
- Intr($16,Regs);
- Extended := (Regs.AL = 0) OR (Regs.AL > 127);
- IF Extended THEN ExReadKey := Chr(Regs.AH)
- ELSE ExReadKey := Chr(Regs.AL);
- end;
-
- function ReadKey : char;
- { This function adds 128 to char if it is extended }
- var Regs : registers;
- begin
- Regs.AX := $1000;
- Intr($16,Regs);
- IF (Regs.AL = 0) OR (Regs.AL > 127) THEN
- ReadKey := Chr(Regs.AH + 128) ELSE ReadKey := Chr(Regs.AL);
- end;
-
- Begin
- Repeat
- ch := ReadKey;
- WriteLn(ch,' ',Ext,' ',ORD(Ch));
- Until Ch = #27;
- END.